// 环境配置

// 开发环境IP配置 - 请根据你的实际网络情况选择或修改
const developmentIPs = [
  'http://localhost:8084/api',           // 开发工具本地调试
  'http://127.0.0.1:8084/api',          // 本地回环地址
  'http://192.168.1.100:8084/api',      // 常用内网IP段 (路由器默认网段)
  'http://192.168.0.100:8084/api',      // 常用内网IP段 (路由器默认网段)
  'http://10.0.0.100:8084/api',         // 常用内网IP段 (企业网络)
  'http://172.16.0.100:8084/api',       // 常用内网IP段 (企业网络)
]

// 当前使用的开发环境IP（请修改为你的实际IP）
// 如何找到你的IP地址：
// Windows: 打开cmd，输入 ipconfig
// Mac/Linux: 打开终端，输入 ifconfig
// 查找类似 192.168.x.x 的地址
const currentDevelopmentIP = developmentIPs[0] // 默认使用localhost，如需真机测试请修改

const env = {
  // 开发环境
  development: {
    baseUrl: currentDevelopmentIP,
  },
  
  // 生产环境
  production: {
    baseUrl: 'https://your-domain.com/api', // 请替换为你的线上域名
  },
  
  // 测试环境
  testing: {
    baseUrl: 'https://test.your-domain.com/api', // 请替换为你的测试域名
  }
}

// 获取当前环境
const getCurrentEnv = () => {
  try {
    const accountInfo = wx.getAccountInfoSync()
    // 如果是开发版或体验版，使用开发环境
    if (accountInfo.miniProgram.envVersion === 'develop' || accountInfo.miniProgram.envVersion === 'trial') {
      return 'development'
    }
    // 正式版使用生产环境
    return 'production'
  } catch (e) {
    // 开发工具中可能获取不到，默认使用开发环境
    return 'development'
  }
}

// 检查是否为真机环境
const isRealDevice = () => {
  try {
    const systemInfo = wx.getSystemInfoSync()
    return systemInfo.platform !== 'devtools'
  } catch (e) {
    return false
  }
}

// 导出当前环境配置
const currentEnv = getCurrentEnv()
const config = env[currentEnv]

// 开发环境下打印网络配置信息
if (currentEnv === 'development') {
  console.log('=== 小程序网络配置 ===')
  console.log('当前环境:', currentEnv)
  console.log('API地址:', config.baseUrl)
  console.log('可用IP选项:', developmentIPs)
  
  if (isRealDevice() && config.baseUrl.includes('localhost')) {
    console.warn('⚠️  检测到真机环境但使用localhost地址')
    console.warn('真机无法访问localhost，请修改配置：')
    console.warn('1. 在Windows cmd中运行: ipconfig')
    console.warn('2. 在Mac/Linux终端中运行: ifconfig')
    console.warn('3. 找到形如 192.168.x.x 的IP地址')
    console.warn('4. 修改 currentDevelopmentIP 为你的实际IP')
    console.warn('5. 确保后端服务监听在 0.0.0.0:8084 而不是 127.0.0.1:8084')
  }
  
  console.log('如果出现网络错误，请：')
  console.log('1. 确保后端服务已启动 (http://localhost:8084 或 http://你的IP:8084)')
  console.log('2. 如果使用真机调试，请修改 currentDevelopmentIP 为你的内网IP')
  console.log('3. 确保防火墙允许相应端口访问')
  console.log('4. 在开发工具中关闭域名校验：详情 → 本地设置 → 不校验合法域名')
  console.log('=====================')
}

module.exports = {
  ...config,
  currentEnv,
  developmentIPs, // 导出IP选项供开发者参考
  isRealDevice: isRealDevice() // 导出设备类型检测结果
} 